package br.com.medmark.model.hibernate.dao;

import javax.persistence.NoResultException;
import javax.persistence.TypedQuery;

import br.com.medmark.model.hibernate.Usuario;

public class UsuarioDAO extends GenericoDAOImpl<Usuario>{

	private static final long serialVersionUID = 1380271955126429852L;
	
	private static UsuarioDAO usuarioDao;
	private UsuarioDAO(){
		
	}
	
	public static UsuarioDAO getInstance(){
		
		if ( usuarioDao == null) {
			usuarioDao = new UsuarioDAO();
		}
	
		return  usuarioDao;
		
	}
	public Usuario getUsuario(String login, String senha) {
		String sql = "FROM Usuario c Where c.login = :login and c.senha = :senha";
		
		TypedQuery<Usuario> query = this.entityManager.createQuery(sql, Usuario.class);
		query.setParameter("login", login);
		query.setParameter("senha", senha);
		
		try {
			return query.getSingleResult();
		} catch (NoResultException ex) {
			return null;
		}
	}
	
	public Usuario getUsuario(Long codigo) {
		String sql = "FROM Usuario c Where c.codigo = :codigo";
		
		TypedQuery<Usuario> query = this.entityManager.createQuery(sql, Usuario.class);
		query.setParameter("codigo", codigo);
	
		try {
			return query.getSingleResult();
		} catch (NoResultException ex) {
			return null;
		}
	}

}
